/******************************************************************************
  single_product.js : 단일상품 사용 라이브러리 
  작성일 : 2004.10.115
  수정일 : 
 *****************************************************************************/
 
//-------------------------------------------------------------------
// 팝업윈도 오픈
// scroll 안주면 스크롤없음, posX/posY 안주면 화면 가운데 오픈
//-------------------------------------------------------------------
function openWindow(winName, url, width, height, scroll, posX, posY) {
	if (scroll==null) scroll = "no";
	if (posX==null) posX = (screen.width - width) / 2;
	if (posY==null) posY = (screen.height - height) / 2;
	return window.open(url, winName, "width="+ width +",height="+ height +",top="+ posY +",left="+ posX +",scrollbars="+ scroll +",resizable=0,channelmode=0,directories=0,fullscreen=0,location=0,menubar=0,status=0,titlebar=0,toolbar=0");
}
//-------------------------------------------------------------------
// 팝업윈도 오픈
// scroll 안주면 스크롤없음, posX/posY 안주면 화면 가운데 오픈
//-------------------------------------------------------------------
function openWindowMod(winName, url, width, height, scroll, posX, posY) {
	if (scroll==null) scroll = "no";
	if (posX==null) posX = (screen.width - width) / 2;
	if (posY==null) posY = (screen.height - height) / 2;
	return window.showModalDialog(url, winName, "width="+ width +",height="+ height +",top="+ posY +",left="+ posX +",scrollbars="+ scroll +",resizable=0,channelmode=0,directories=0,fullscreen=0,location=0,menubar=0,status=0,titlebar=0,toolbar=0");
}

/******************************************************************************
폼 기본 라이브러리
 *****************************************************************************/
//-------------------------------------------------------------------
// 테이블 선택 
// param subContentIds 	: 추가 대상 서브콘텐츠 IDs
// param subContentNames	: 추가 대상 서브콘텐츠명s
// param subSetId			: 서브콘텐츠 해당 서브셋 Id
//-------------------------------------------------------------------
function choiceTable(subContentIds, subContentNames, subSetId){
	var subId     = subContentIds.split(":");
	var subName   = subContentNames.split(":");
	var subData   = new subContentData();
	
	for(var i=0; i<subId.length-1; i++){
		subData.subSetId         = subSetId;		
		subData.subContentId     = subId[i];
		subData.subContentName   = subName[i];		
		newRegContentAdd(subData);
	}
}

 //-------------------------------------------------------------------
// 테이블 선택 
// param subContentIds 	: 추가 대상 서브콘텐츠 IDs
// param subContentNames	: 추가 대상 서브콘텐츠명s
// param subSetId			: 서브콘텐츠 해당 서브셋 Id
//-------------------------------------------------------------------
function choiceTableTemplate(subContentIds, subContentNames, subSetId){
	var subId     = subContentIds.split(":");
	var subName   = subContentNames.split(":");
	var subData   = new subContentData();
	
	for(var i=0; i<subId.length-1; i++){
		subData.subSetId        = subSetId;		
		subData.subContentId    = subId[i];
		subData.subContentName  = subName[i];		
		newRegContentAddTemplate(subData);
	}
}

//-------------------------------------------------------------------
// Check Box선택
// param obj			: RadioBox Object
// param xValue 		: RadioBox Element Value (구분자 ':')     
// Ex : choiceCheckBox(form.CheckBoxName, xValue)
//-------------------------------------------------------------------
function choiceCheckBox(obj, xValue){
	var str;
	var count = 0;
	str = xValue.split(":");
	
	for(var i=0; i < str.length-1 ; i++){	choiceRadioBox(obj, str[i]);	}	
}

//-------------------------------------------------------------------
// Radio Box선택
// param obj			: RadioBox Object
// param xValue 		: RadioBox Element Value
// Ex : choiceRadioBox(form.RadioBoxName, xValue)
//-------------------------------------------------------------------
function choiceRadioBox(obj, xValue){
	if(obj == null) return;
	if(obj.length != null){
		for(var i=0; i < obj.length ; i++){
			if(obj[i].value == xValue){
				obj[i].checked = true; 	return;
			} 
		}
	}else{
		obj.checked = true; return;
	}		
}
//-------------------------------------------------------------------
// Select Box선택
// param obj			: SelectBox Object
// param xValue 		: SelectBox Element Value
// Ex : choiceSelectBox(form.SelectBoxName, xValue)
//-------------------------------------------------------------------
function choiceSelectBox(obj, xValue){
	if(obj == null) return;
	for(var i=0; i < obj.length ; i++){
		if(obj.options[i].value == xValue){
			obj.options[i].selected = true;	return;
		} 
	}
}
//-------------------------------------------------------------------
// Select List Box선택
// param obj			: SelectBox Object
// param xValue 		: SelectBox Element Value(구분자 ':')     
// Ex : choiceListSelectBox(form.SelectBoxName, form.SelectListBoxName, xValue)
//-------------------------------------------------------------------
function choiceListSelectBox(sObj, listObj, xValue){
	var str;
	var count = 0;
	
	if(xValue != null && xValue != ""){
		str = xValue.split(":");
		for(var i=0; i < str.length-1 ; i++){	
			choiceSelectBox(sObj, str[i]);
			selectListUIAdd(sObj, listObj);				 
		}			
	}		
}
//-------------------------------------------------------------------
// Select Box 추가 
// param obj			: SelectBox Object
// param xValue 		: add Element Value
// param xText		: add Element Text
// Ex : selectAdd(form.SelectBoxName, Text, Value)
//-------------------------------------------------------------------
function selectAdd(obj, xText, xValue) {
	var oOption = document.createElement("OPTION");
	
	if(obj == null) return;
	
	oOption.text=xText;
	oOption.value=xValue;
	obj.add(oOption);
}
//-------------------------------------------------------------------
// Select Box 전체삭제
// param obj			  : SelectBox Object
// param zeroIndexDelete : First Index Delete Flag 
// Ex : selectRemoveAll(form.SelectBoxName, true or flase)
//-------------------------------------------------------------------
function selectRemoveAll(obj, zeroIndexDelete) {

	if(obj == null) return;
	
	var index		= zeroIndexDelete?0:1;
	var Length	= obj.options.length;
	
	if(Length==0) 	return;
	
	for(var i=Length-1; i >= index; i--) 	obj.remove(i);		
}
//-------------------------------------------------------------------
// Select Box 에서 선택 후 Select List Box에 추가 
// param sObj			  : SelectBox Object
// param listObj		  : SelectListBox Object
// Ex : selectListUIAdd(form.SelectBoxName, form.SelectListBoxName)
//-------------------------------------------------------------------
function selectListUIAdd(sObj, listObj) {

	if(sObj == null || listObj == null) return;
	if(sObj.selectedIndex < 0 ) return;
	
	var xText		= sObj.options[sObj.selectedIndex].text;
	var xValue	= sObj.options[sObj.selectedIndex].value;
	
	if(xValue == null ||  xValue == ""){	openInformMessageWindow(message2);	return ;	}		
	
	for (i=0; i<listObj.length; i++) {		
		if (listObj[i].value == xValue) {	openInformMessageWindow(message4);	return ;}
	}	
	selectAdd(listObj, xText, xValue);
}
//-------------------------------------------------------------------
// Select List Box에서 선택 후 삭제 
// param listObj		  : SelectListBox Object
// Ex : selectListUIDel(form.SelectListBoxName)
//-------------------------------------------------------------------
function selectListUIDel(listObj) {	
	if(listObj == null) return;
	if (listObj.value == ""){ 		openInformMessageWindow(message3);		return;	}	
	var xValue = listObj.options[listObj.selectedIndex].value;	
	
	if(xValue != null && xValue != "") 	listObj.remove(listObj.selectedIndex);
	return;	
}
/******************************************************************************
테이블 관련  라이브러리
 *****************************************************************************/

//-------------------------------------------------------------------
// 테이블 내용 추가 
// param oTableName	  : 테이블명 
// param dataCells	  	  : 데이타 
// param widthCells	  	  : 열 폭  
// param alignCells	  	  : 데이타 위치 
//-------------------------------------------------------------------
function tableRowDataAdd(oTableName, dataCells, widthCells, alignCells){

	var oTable 	= document.all(oTableName);
	if(oTable == null) return;
	
	var oRow		= oTable.insertRow();
	var oCell 		= new Array(dataCells.length);
	var curr_cell;
	
	for(curr_cell = 0; curr_cell < dataCells.length; curr_cell++){
		oCell[curr_cell] = oRow.insertCell();
		oCell[curr_cell].height="22";
		oCell[curr_cell].width = widthCells[curr_cell]; 
		oCell[curr_cell].align = alignCells[curr_cell];
		oCell[curr_cell].innerHTML = dataCells[curr_cell];
	}		
}

//-------------------------------------------------------------------
// 테이블 내용 삭제 
// param oTableName	: 테이블명 
// param delIndex	  	: 테이블 삭제 행
//-------------------------------------------------------------------
function tableRowDataDel(oTableName, delIndex){
	
	var oTable = document.all(oTableName);
	var oRow	 = oTable.rows;
	
	oTable.deleteRow(delIndex);		
	
}
//-------------------------------------------------------------------
// 테이블 내용 전체 삭제 
// param oTableName	  : 테이블명 
// param delStartIndex	  : 테이블 삭제 시작 행수 
//-------------------------------------------------------------------
function tableRemoveAll(oTableName, delStartIndex){
	
	var oTable  = document.all(oTableName);
	if(oTable == null) return;
	
	var rowCount = oTable.rows.length;
	if(rowCount <= delStartIndex)  return;
	
	for(var i =delStartIndex ; i < rowCount ; i++){
		oTable.deleteRow(delStartIndex);		  
	}
}

//-------------------------------------------------------------------
// 테이블의 데이타 행 찾기 
// param oTableName	  : 테이블명 
// param primaryKey	  : 삭제 대상 Id 
// param cellIndex		  : 삭제 대상Id와 비교할 Cell Index
// return  searchRow	  : 테이블 행 (0 인 경우 테이블에 해당하는 행 없슴 )
//-------------------------------------------------------------------
function tableRowNumSearch(oTableName, primaryKey, cellIndex){
	
	var oTable 	= document.all(oTableName);
	if(oTable == null) return 0;
	
	var oRow	= oTable.rows;
	var oCell;
	var curr_row;
	
	for(curr_row = 1; curr_row < oRow.length; curr_row++){	
		oCell = oRow[curr_row].cells;	
		if(oCell[cellIndex].innerHTML == primaryKey ){	
			return curr_row;
		}				
	}
	return 0;
}
/******************************************************************************
(다른 js)참조  라이브러리
 *****************************************************************************/
//-------------------------------------------------------------------
// 달력 호출 
// param formName		  : FormName
// param obj			  : TextBox Object
// param year			  : 년 
// param month		  : 월
// param day			  : 일
// Ex : product_calendar(formName, textBoxName, 년, 월, 일)
//-------------------------------------------------------------------
 function product_calendar(formName, obj, year, month, day){
 	//open_calendar_for_func('mappingform', 'searchStartDate', '', '', '');
 	open_calendar_for_func(formName, obj, year, month, day);	
}	

/******************************************************************************
목록에서 호출하는 라이브러리(상용/이력) 
 *****************************************************************************/
//-------------------------------------------------------------------
// [Search] 버튼 클릭시 - 조건 검색
// 페이지 위치 설정 
//-------------------------------------------------------------------
function listSearchStart(){	
	if(listForm == null) listForm = document.mappingform;	
	
	if(listForm.searchTotalCnt != null) listForm.searchTotalCnt.value="-1";	
	if(listForm.searchKeyword != null){
	 	var sKey = trim(listForm.searchKeyword.value);
	 	//listForm.searchKeyword.value = sKey.replace("'", "''");
	} 
	listForm.pageNo.value="1";	
	searchSend();
}
//-------------------------------------------------------------------
// [정렬] 버튼 클릭시 - 목록 정렬 재검색 (목록Frame Call)
// param sortName 		: 정렬기준필드(DB Column과 동일)
// param sortOreder 	: 정렬순서(내림차순/ 오름차순)
//-------------------------------------------------------------------
function listSearchStart2(sortName, sortOrder){
if(listForm == null) listForm = document.mappingform;	
	if(listForm == null) listForm = document.mappingform;	
	listForm.searchSortColumn.value 			= sortName;
	listForm.searchSortOrder.value 			= sortOrder;
	listForm.pageNo.value 					= "1";	
	searchSend();
}
//-------------------------------------------------------------------
// [페이지] 링크 클릭시 - 목록의 해당 페이지 이동 (목록Frame Call)
// param pageNo 		: 페이지 위치 
// param pageSize 		: 한 페이지에 Display 할 목록 수 
//-------------------------------------------------------------------
function listSearchStart3(pageNo, pageSize){	
	if(listForm == null) listForm = document.mappingform;	
	listForm.pageNo.value 					= pageNo;
	listForm.pageSize.value 				= pageSize;
	searchSend();
}
//-------------------------------------------------------------------
// 단일상품 목록의 총건수 설정  : [목록Frame] 에서 호출 
//-------------------------------------------------------------------
function totCountSetting(arg1){	
	
	var totObj = document.all("totCount");
	var cntObj = document.all("searchTotalCnt");
	
	if(cntObj != null) cntObj.value = arg1;
	
	totObj.innerHTML = "[ 총 " + cntObj.value + "건]";
}

//-------------------------------------------------------------------
// 메뉴 설정 : 공통 메뉴 애플릿 창에서 메뉴 선택시 조건폼 설정 
//-------------------------------------------------------------------
function imsMenuSetting(menuId, menuName){
	if(listForm == null) listForm = document.mappingform;	
	listForm.searchImsMenuId.value 		= menuId;
	listForm.searchImsMenuName.value 	= menuName;
}
//-------------------------------------------------------------------
// [엑셀다운로드] 클릭시 
// param userType 		: 관리자 vs 파트너 
//-------------------------------------------------------------------
function excelDown(userType) {
	parent.document.frames.listSendExcel(userType);		
}

//-------------------------------------------------------------------
// 단일상품 [엑셀다운로드] 클릭시 
// param userType : 관리자(I) vs 파트너(P) 
//-------------------------------------------------------------------
function listSendExcel(userType){		
	
	//고도화 관련 추가 체크 
	var sTemp = listForm.searchKeyword.value;
	
	if(listForm.searchType.value == "SHOP_ID")  listForm.searchKeyword.value = listForm.shopList.value; 
	if(listForm.searchType.value == "SERVICE_METHOD") listForm.searchKeyword.value = listForm.serviceList.value; 
	if(listForm.searchType.value == "PRODUCT_CATEGORY_ID" && sTemp != "" )  listForm.searchKeyword.value = listForm.categoryId.value;
	
	var pageSize = listForm.pageSize.value;
	
	if (listForm.searchTotalCnt.value > 65000) {
		openWarningMessageWindow("65,000건 이하의 데이타만 Excel로 다운 받을수 있습니다.");
		return;
	}

	listForm.target  = 'excelIFrame';
	listForm.pageSize.value = '0';
	listForm.action = "/p_product_single_search_list_listFrm.do?excelYn=1&userType="+userType;
	listForm.submit();	
	
	listForm.pageSize.value = pageSize;
	if(listForm.searchType.value == "PRODUCT_CATEGORY_ID")  listForm.searchKeyword.value = sTemp;
}

/******************************************************************************
신청폼에서 호출하는 라이브러리(일반)
 *****************************************************************************/
//-------------------------------------------------------------------
// 결제수단 CheckBox 클릭시 호출 >> 
//              전체 클릭시 다른 CheckBox 클리어 
//              다른 결제수단 CheckBox 클릭시 전체 클리어 
// param arg		  : CheckBox Object의 Value
//-------------------------------------------------------------------
function validPaymentWay(arg){
	if(regForm.PAYMENT_WAY_ID == null) return;
	
	if(regForm.PAYMENT_WAY_ID.length != null){
	
		if(arg == '0000'){
			regForm.PAYMENT_WAY_ID[0].checked = true;		
			for(var i = 1; i<regForm.PAYMENT_WAY_ID.length; i++){	
				regForm.PAYMENT_WAY_ID[i].checked = false;	
			}
		}else{
			regForm.PAYMENT_WAY_ID[0].checked = false;
		}
	}	
	return;
}
//-------------------------------------------------------------------
// 결제수단 클리어 >>  CheckBox 클리어 
//-------------------------------------------------------------------
function paymentWayClear(){	

	if(regForm.PAYMENT_WAY_ID == null) return;
	
	if(regForm.PAYMENT_WAY_ID.length != null){	
		for(var i = 0; i<regForm.PAYMENT_WAY_ID.length; i++){	
			regForm.PAYMENT_WAY_ID[i].checked = false;	
		}
	}else{
			regForm.PAYMENT_WAY_ID.checked = false;	
	}	
	return;
}

//-------------------------------------------------------------------
// 단일상품 신청폼의 상품구성요소 테이블 추가 
// 서브셋 동일여부/ 중복여부 / MLB 적용여부 체크 후 테이블 추가
// param subData	: subContent 내용을 담고 있는 js객체 
//-------------------------------------------------------------------
function newRegContentAdd(subData, setMlbApplyYN){
	// 상품목록 테이블 추가 
	var dataCols  = new Array();
	var widthCols = new Array();
	var alignCols = new Array();
	var srcContentId = "";
	
	
	if(regForm.SUB_SET_ID.value !="" && regForm.SUB_SET_ID.value != subData.subSetId){
		openInformMessageWindow(message1);
		return;
	}
	
	if(tableRowNumSearch("contList", subData.subContentId, 0 ) != 0) {
		openInformMessageWindow(message4);
		return;
	} 
	
	
	if (setMlbApplyYN != null && setMlbApplyYN == true) {
		if (mlbApplyCheck(subData.subContentId, '1') ==  false) {
			//openInformMessageWindow(message23);
			return;
		}
	}
	//mcs인 경우 qvga check adding : 20060526
	if(regForm.CONTENT_TYPE.value == "09" || regForm.CONTENT_TYPE.value == "10"){
		if(mcsQVGACheck(	subData.subContentId) == false){
				return;
		}	
	}
	
	regForm.SUB_SET_ID.value  	= subData.subSetId;		
	dataCols[0] = subData.subContentId;
	dataCols[1] = subData.subContentName;
	dataCols[2] = "<a href=\"javascript:newRegReadyDel('"+subData.subContentId+"')\">삭제</a>";
	
	widthCols[0] = "17%";
	widthCols[1] = "73%";
	widthCols[2] = "10%";
	
	alignCols[0] = "center";
	alignCols[1] = "left";
	alignCols[2] = "center";
	
	tableRowDataAdd("contList", dataCols, widthCols, alignCols);				
}
//-------------------------------------------------------------------
// 단일상품 신청폼의 상품구성요소 테이블 추가 - 템플릿에서 이용 
// 서브셋 동일여부/ 중복여부 
// param subData	: subContent 내용을 담고 있는 js객체 
//-------------------------------------------------------------------
function newRegContentAddTemplate(subData){
	// 상품목록 테이블 추가 
	var dataCols  = new Array();
	var widthCols = new Array();
	var alignCols = new Array();
	var flag = "1";
	var srcContentId = "";
	
	
	if(regForm.SUB_SET_ID.value !="" && regForm.SUB_SET_ID.value != subData.subSetId){
		openInformMessageWindow(message1);		flag = "0";
	}
	
	if(flag=="1" &&  tableRowNumSearch("contList", subData.subContentId, 0 ) != 0) {
		openInformMessageWindow(message4);		flag = "0";
	} 
		
	if(flag == "1"){			
		regForm.SUB_SET_ID.value  	= subData.subSetId;		
		dataCols[0] = subData.subContentId;
		dataCols[1] = subData.subContentName;
		dataCols[2] = "<a href=\"javascript:newRegReadyDelAll('contList', 2)\">삭제</a>";
		
		widthCols[0] = "17%";
		widthCols[1] = "73%";
		widthCols[2] = "10%";
		
		alignCols[0] = "center";
		alignCols[1] = "left";
		alignCols[2] = "center";
		
		tableRowDataAdd("contList", dataCols, widthCols, alignCols);				
	}
}
//-------------------------------------------------------------------
// 단일상품 신청폼의 상품구성요소 테이블 삭제 
// param primaryKey	: 삭제시 필요한 PK(subContentID)
//-------------------------------------------------------------------
function newRegReadyDel(primaryKey){
	var i = 0;
	
	var index = tableRowNumSearch("contList", primaryKey, 0 );
	
	tableRowDataDel("contList", index);	
	
	// 콘텐츠 테이블 삭제 	: 테이블의 길이가  2인 경우 상품구성테이블에 서브콘텐츠 없슴.
	var oTable 	= document.all("contList");
	if(oTable == null) return;
	if(oTable.rows.length == 2){			
		regForm.SUB_SET_ID.value  	= "";		
		//mlb 관련 사항 클리어 
		mlbApplyCheck('0', '2');
	}	
}
//-------------------------------------------------------------------
// 단일상품 신청폼의 상품구성요소 테이블 전체 삭제 
// param primaryKey	: 삭제시 필요한 PK(subContentID)
//-------------------------------------------------------------------
function newRegReadyDelAll(oTableName, delStartIndex){	
	tableRemoveAll(oTableName, delStartIndex);	
	regForm.SUB_SET_ID.value  = "";
	//MLB 클리어 
	mlbApplyCheck('0', '2');
}

//-------------------------------------------------------------------
// 단일상품 신청폼의 추가구성 정보 show
// param oTableName	: 추가구성 테이블명
// param checkIndex	: 테이블에서 show/hidden 여부 확인 행 
//-------------------------------------------------------------------
function togleInfoClick(oTableName, checkIndex){
	var objTable =  document.getElementById(oTableName);
  	
	if(objTable.rows[checkIndex].style.display  == ''){
       	delInfoClick(oTableName, checkIndex);
      }else{        
  		addInfoClick(oTableName, checkIndex)
    	}		
}
//-------------------------------------------------------------------
// 단일상품 신청폼의 추가구성 정보 show
// param oTableName		: 추가구성 테이블명
// param startHiddenIndex	: 테이블에서 보여질 시작행 
//-------------------------------------------------------------------
function addInfoClick( oTableName, startShowIndex){
	var objTable =  document.getElementById(oTableName);
  	for (var r = startShowIndex; r < objTable.rows.length; r++)
    		objTable.rows[r].style.display = '';	         	
}
//-------------------------------------------------------------------
// 단일상품 신청폼의 추가구성 정보 hidden 
// param oTableName		: 추가구성 테이블명
// param startHiddenIndex	: 테이블에서 숨겨질 시작행 
//-------------------------------------------------------------------
function delInfoClick(oTableName, startHiddenIndex){
	var objTable =  document.getElementById(oTableName);
  	for (var r = startHiddenIndex; r < objTable.rows.length; r++)
    		objTable.rows[r].style.display = 'none';	         
}
//-------------------------------------------------------------------
// 단일상품 신청폼에서 CheckBox의  다수 선택한 Value 값 반환 (결제수단)
// param oElementName		: CheckBoxName
// return  resultStr			: Check 된 다수 Id 값 (구분자 ":")
//-------------------------------------------------------------------
function getCheckBoxValues(oElementName){
	
	var resultStr = "";
	var oElement = document.all(oElementName);
	if(oElement.length != null){
		for(var i = 0; i<oElement.length; i++){
			if(oElement[i].checked == true){
				resultStr = resultStr +  oElement[i].value + ":";
			}
		}
	}else{
		if(oElement.checked == true){
			resultStr = oElement.value + ":";
		}
	}	
	return resultStr;
}	
//-------------------------------------------------------------------
// 단일상품 신청폼에서 SelectListBox의  다수 선택한 Value 값 반환 (차등과금/상품그룹)
// param oElementName		: SelectListBoxName
// return  resultStr			: SelectListBox에 있는  다수 Id 값 (구분자 ":")
//-------------------------------------------------------------------
function getSelectListBoxValues(oElementName){
	
	var resultStr = "";
	var oElement = document.all(oElementName);
	
	if(oElement.length > 0){		
		for(var i =0; i < oElement.length; i++){
			resultStr = resultStr +  oElement[i].value + ":";		
		}
	}		
	return resultStr;
}
//-------------------------------------------------------------------
// 단일상품 신청폼에서 테이블에 존재하는 Value 값 반환 (서브콘텐츠Id/ 서브콘텐츠Name)
// param oTableName		: TableName
// param cellIndex			: 데이타가 위치한  열  값
// param startRowIndex		: 데이타 시작 행 값 
// return resultStr 			: 데이타 (구분자 ":")
//-------------------------------------------------------------------
function getTableCellValues(oTableName,  cellIndex,  startRowIndex){
	
	var resultStr = "";
	var oTable = document.all(oTableName);
	
	if(oTable == null) return resultStr;
	
	var oRow	= oTable.rows;
	
	for(var i = startRowIndex ; i < oRow.length ; i++){
		resultStr      = resultStr + oRow[i].cells[cellIndex].innerHTML + ":";			  
	}	
	return resultStr;
}	
//-------------------------------------------------------------------
// 데이타 실수형 체크 
// param arg		: 데이타
// param dateType : ###.##
// return checkflag 	: true vs false
//-------------------------------------------------------------------
function floatCheck(arg){
	var checkflag = true;
	var tempArr = arg.split(".");
	
	if(arg == "") checkflag = false;
	
	if(checkflag && isNaN(parseFloat(arg) ) ) checkflag = false;
	if(checkflag && FnCheckType(arg, NUM+".") == false )  checkflag = false; 
	if(checkflag && arg.substring(0,1) == ".") checkflag = false;
	if(checkflag && tempArr != null && tempArr.length > 2) checkflag = false;
	
	return checkflag;
			
}
//-------------------------------------------------------------------
// 데이타 실수형 체크 
// param arg		: 데이타
// return value 	: 0 or value
//-------------------------------------------------------------------
function floatTypeCheck(arg){
	
	var conData = "0";	
	
	if(arg == null || arg == ""){ conData = "0";	return conData; }
	if(isNaN(parseFloat(arg) ) ){ conData = "0";	return conData; }
	if( FnCheckType(arg, NUM+".") == false ){ conData = "0";	return conData; }
	
	if(arg.indexOf(".") == -1) arg = arg+".00";
	else if(arg.substring(0,1) == ".") arg = "0"+arg;
	
	var tempArr = arg.split(".");	
	if(tempArr == null || tempArr.length > 2){ conData = "0";	return conData; }
	var num1 = trim(tempArr[0]);
	num1 = trimFrontZero(num1);
	if(num1 == "") num1 = "0";
	if(num1.length > 3 || parseInt(num1) > parseInt("100")) { conData = "100.00";	return conData; }		
	var num2 = trim(tempArr[1]);
	if(num2.length > 2 ) num2 = num2.substring(0,2);
	if(num2.length == 1) num2 = num2 + "0";
	else if(num2.length == 0) num2 = "00";
	
	if(parseInt(num1) == parseInt("100") && parseInt(num2) > parseInt("0")){ conData = "100.00";	return conData; }	
	
	conData = num1 + "." + num2;
	return conData;
	
}
//-------------------------------------------------------------------
// 데이타 실수형 체크 
// param arg		: 데이타
// return value 	: 0 or value
//-------------------------------------------------------------------
function floatTypeCheckMsg(arg){
	
	var conData = "";	
	
	if(arg == null || arg == "") 				conData = "정산율이 null이거나 공백입니다.\n";
	if( FnCheckType(arg, NUM+".") == false ) 	conData = conData+ "정산율은 [숫자(0-9), 도트(.)]만 입력 가능합니다. \n"
	if(arg.substring(0,1) == ".") 				conData = conData+ "정산율의 첫자리는 숫자(0-9)여야 합니다.\n";
	if(isNaN(parseFloat(arg) ) ) 				conData = conData+ "실수형 전환을 할 수없습니다.\n";
	else if(parseFloat(arg) > 100 ||  parseFloat(arg) < 0 ) conData = conData+ "정산율은 최소 0%, 최대 100% 입니다.\n";
	var tempArr = arg.split(".");	
	if(tempArr != null && tempArr.length > 2)	conData = conData+ "정산율의 도트(.)는 하나만 입력해야 합니다.\n";
	return conData;
	
}
//-------------------------------------------------------------------
// 데이타의 앞부분 "0" 자르기
// param str		: 데이타
// return value 	: value
//-------------------------------------------------------------------
function trimFrontZero(str){
	var numFlag = false;
	var desc = "";
	
	for(var i = 0; i <str.length; i++){	  
	  	if(numFlag == false && str.substring(i,i+1) != "0" ){
	  		numFlag = true;
	  	}	
	  	if(numFlag == true){
	  		desc = desc + str.substring(i,i+1);
		}	  
	}
	return desc;
}

function subContentAddCheck(subContentId, subSetId){
	
	if(regForm.SUB_SET_ID.value !="" && regForm.SUB_SET_ID.value != subSetId){
		return false;
	}	 
	if(tableRowNumSearch("contList", subContentId, 0 )  != 0) {		
		return false;
	} 
	return true;
}

//-------------------------------------------------------------------
// 'yyyy-mm-dd' 형식에 맞는 날짜를 체크한다.
// param str		: 날짜
// return boolean 	: true / false
//-------------------------------------------------------------------
function isValidFormDate(str){
	
	if(str == null || str == "null" || str == "" || str.length != 10) return false;
	if(str.charAt(4) != "-" || str.charAt(7) != "-")  return false;
	var year 		= str.substr(0,4);
	var month 	= str.charAt(5)+""+str.charAt(6);
	var day 		= str.substr(8,10);
	
	
	if( FnCheckType(year + month + day, NUM) == false ) return false;
	
	//"0" 제거 
	month	= trimFrontZero(month);
	day	   	= trimFrontZero(day);
	
	var date 		= new Date();
	var currYear 	= date.getFullYear();
	var currMonth = date.getMonth() + 1;
	var currDay 	= date.getDate();
	var lastday 	= new Date( year, month, 0 ).getDate();
	
	if(parseInt(year) < 1900 || parseInt(year) > currYear) return false;
	if(parseInt(month) < 1 || parseInt(month) > 12 || (parseInt(year) == currYear && parseInt(month)  > currMonth)) return false;
	if(parseInt(day) < 1 || parseInt(day) > lastday ) return false;	
	if(parseInt(year) == currYear && parseInt(month)  == currMonth && parseInt(day) > currDay) return false;
	
	return true;
}
//-------------------------------------------------------------------
// to 날짜가 from 보다 작은지 비교한다. 본 함수를 호출 전 isValidFormDate() 선행한다.
// param fromDate	: from 일자 
// param toDate	: to 일자 
// return boolean 	: true / false
//-------------------------------------------------------------------
function isFromDateToDae(fromDate, toDate){
	
	var sDate		= fromDate.substr(0,4) + fromDate.charAt(5)+""+fromDate.charAt(6) + fromDate.substr(8,10);
	var eDate		= toDate.substr(0,4) + toDate.charAt(5)+""+toDate.charAt(6) + toDate.substr(8,10);
	
	if(parseInt(sDate) > parseInt(eDate)) return false;
	return true;
}

//-------------------------------------------------------------------
// 목록에서 줄인 필드 display or hidden 한다.
//-------------------------------------------------------------------
var tWidth=300
var tHeight=50
var tPadding=5
var bWidth=1
var font="굴림"
var fontsize=10
var fontsizelastletter=9
var fontcolor="000000"
var fontcolorlastletter="000000"
var fontweight=3
var bgColor="#6699CC"
var standstill=2000
var speed=2
var xdistance=10
var ydistance=10
var timer
var topposition=0
var leftposition=0
var x,y
var i_substring=0
var i_presubstring=0
var i_msg=0
var msg
var msgcontent=""
var msgbackground=""
var msgpresubstring=""
var msgaftersubstring=""
fontweight=fontweight*100



function getmsgbackground() {
		msgbackground="<table border="+bWidth+" width="+tWidth+" height="+tHeight+" cellspacing=0 cellpadding=0><tr><td valign=top bgcolor='"+bgColor+"'>"
		msgbackground+="&nbsp;</td></tr></table>"
}

function getmsgcontent() {	
		msgcontent="<table border=0 cellspacing=0 cellpadding="+tPadding+" width="+tWidth+" height="+tHeight+"><tr><td valign=top>"
		msgcontent+="<span style='position:relative; font-family:"+font+";color:"+fontcolor+";font-size:"+fontsize+"pt;font-weight:"+fontweight+"'>"	
		msgcontent+="<font color='"+fontcolor+"'>"
		msgcontent+=msgpresubstring
		msgcontent+="</font>"
		msgcontent+="</span>"
		msgcontent+="<span style='position:relative; font-family:"+font+";color:"+fontcolor+";font-size:"+fontsizelastletter+"pt;font-weight:"+fontweight+"'>"	
		msgcontent+="<font color='"+fontcolorlastletter+"'>"
		msgcontent+=msgaftersubstring
		msgcontent+="</font>"
		msgcontent+="</span>"
		msgcontent+="</td></tr></table>"
}

function showticker() {
	if (i_substring<=msg.length-1) {
			i_substring++
			i_presubstring=i_substring-1
			if (i_presubstring<0) {i_presubstring=0}
            msgpresubstring=msg.substring(0,i_presubstring)
	        msgaftersubstring=msg.substring(i_presubstring,i_substring)
			getmsgcontent()
		if (document.all) {
			ticker.innerHTML=msgcontent
			timer=setTimeout("showticker()", speed)
		}
		if (document.layers) {
			document.ticker.document.write(msgcontent)
			document.ticker.document.close()
			timer=setTimeout("showticker()", speed)
		}
	}
	else {
		clearTimeout(timer)
	}
}

function hideticker() {
     if(document.onmouseclick) return;
		
     x = (document.layers) ? e.pageX : document.body.scrollLeft+event.clientX
     y = (document.layers) ? e.pageY : document.body.scrollTop+event.clientY
		
    clearTimeout(timer)
    i_substring=0
	i_presubstring=0
    if (document.all) {
	    document.all.ticker.style.visibility="hidden"
        document.all.tickerbg.style.visibility="hidden"
	}
	if (document.layers) {
		document.ticker.visibility="hidden"
        	document.tickerbg.visibility="hidden"
	}
}

function showmsg(linkmsg) {
	
	
	x = (document.layers) ? e.pageX : document.body.scrollLeft+event.clientX
	y = (document.layers) ? e.pageY : document.body.scrollTop+event.clientY

	if( linkmsg == "" ) return ;
	getmsgbackground()
	msg=linkmsg
   
 	i_substring=0
	i_presubstring=0
	leftposition=x+xdistance
	topposition=y-ydistance
    
    if (document.all) {	
		document.all.ticker.style.posLeft=leftposition
		document.all.ticker.style.posTop=topposition
		document.all.tickerbg.style.posLeft=leftposition
		document.all.tickerbg.style.posTop=topposition
		tickerbg.innerHTML=msgbackground
        document.all.ticker.style.visibility="visible"
        document.all.tickerbg.style.visibility="visible"
		showticker()
	}
	if (document.layers) {
        document.ticker.left=leftposition
		document.ticker.top=topposition
		document.tickerbg.left=leftposition
		document.tickerbg.top=topposition
		document.tickerbg.document.write(msgbackground)
		document.tickerbg.document.close()
        document.ticker.visibility="visible"
        document.tickerbg.visibility="visible"
		showticker()
	}
}
//-------------------------------------------------------------------
// 다자간 정산테이블의 객체 
//-------------------------------------------------------------------
function settleData(){
	this.partnerId;
	this.partnerName;
	this.workGroupId;
	this.workGroupName;
	this.compSettleRatio;	
	this.compProdSettleCode;		
	this.compBasic;
}	
function settleTableData(){
	this.partner;
	this.workGroupId;
	this.compSettleRatio;
	this.compProdCode;	
	this.compProdCodeName;
}
function prodCodeData(){
	this.prodSettleCode;
	this.prodSettleName;	
	this.webChannelType;
}
function prodWebCodeData(){
	this.prodSettleCode;
	this.settlStrdCode;
	this.settlRt;
	this.settlItemCode; 	
}
//-------------------------------------------------------------------
// 정산코드 조합 객체 
//-------------------------------------------------------------------
function settleConsData(){
	this.prodSettleId;
	this.settleStrdId;
}